import 'dart:convert' show utf8;

extension MyStringExtension on String {
  bool get isAscii {
    if (isEmpty) {
      return true;
    }

    if (utf8.encode(this).length > length) {
      return false;
    }

    return true;
  }

  bool get isSingleDigit {
    if (isEmpty) {
      return false;
    }

    switch (this) {
      case "0":
        return true;
      case "1":
        return true;
      case "2":
        return true;
      case "3":
        return true;
      case "4":
        return true;
      case "5":
        return true;
      case "6":
        return true;
      case "7":
        return true;
      case "8":
        return true;
      case "9":
        return true;
      case ".":
        return true;
      default:
        return false;
    }
  }

  bool get commonSymbols {
    if (isEmpty) {
      return false;
    }

    switch (this) {
      case "0":
        return true;
      case "1":
        return true;
      case "2":
        return true;
      case "3":
        return true;
      case "4":
        return true;
      case "5":
        return true;
      case "6":
        return true;
      case "7":
        return true;
      case "8":
        return true;
      case "9":
        return true;
      case ".":
        return true;
      default:
        return false;
    }
  }

  String isEmptyTo(String value) {
    return isEmpty ? value : this;
  }
}
